package interfazeak;

import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Vector;

import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.border.EmptyBorder;

import laguntzaileak.Kutxa;

import com.toedter.calendar.JCalendar;

import db.BarietateaKud;
import db.LekuaKud;

public class Batu extends JDialog {
	private Mahastiak_Lekuak guraso;
	private final JPanel contentPanel = new JPanel();
	private JLabel lblherria;
	private JLabel herriajarri;
	private JLabel lblizena;
	private Component izenajarri;
	private Vector<String> lekuabektorea;
	private Vector<Integer> bektorebarId;
	private Vector<String> bektoreizenak;
	private JButton batu;
	private Vector<JTextField> bektoretext;
	private Vector<Kutxa> bektoreKutxa;
	private Kutxa kutxa;
	private JComboBox urteaBox;
	private JLabel data;
	private JComboBox hileaBox;
	private JComboBox egunaBox;
	private int lekuaid;
	private JCalendar cal;
	private JLabel kutxaklbl;

	public static void main(String[] args) {
		try {
			final Boolean MODALA = true;

			int lerroa = 0;
			String h = null, i = null;
			Batu dialog = new Batu(new Mahastiak_Lekuak(), MODALA, h, i);
			dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
			dialog.setVisible(true);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	public Batu(Mahastiak_Lekuak mahastiak_Lekuak, boolean b, String h,
			String iz) {
		this.guraso = guraso;

		bektoretext = new Vector<JTextField>();
		bektoreKutxa = new Vector<Kutxa>();
		bektoreizenak = new Vector<String>();
		setBounds(120, 140, 748, 420); // 700=450
		setTitle("MAHATSAK BATU");
		getContentPane().setLayout(new BorderLayout());
		contentPanel.setBorder(new EmptyBorder(5, 5, 5, 5));
		getContentPane().add(contentPanel, BorderLayout.CENTER);
		contentPanel.setLayout(null);

		lblherria = new JLabel("Herria:");
		lblherria.setBounds(30, 40, 70, 15);
		contentPanel.add(lblherria);

		String herria = h;

		herriajarri = new JLabel(herria);
		herriajarri.setBounds(105, 40, 100, 15);
		contentPanel.add(herriajarri);

		lblizena = new JLabel("Izena:");
		lblizena.setBounds(30, 80, 70, 15);
		contentPanel.add(lblizena);

		kutxaklbl = new JLabel("KILOAK");
		kutxaklbl.setBounds(550, 40, 100, 15);
		contentPanel.add(kutxaklbl);
		String izena = iz;

		izenajarri = new JLabel(izena);
		izenajarri.setBounds(105, 80, 100, 15);
		contentPanel.add(izenajarri);

		data = new JLabel("DATA");
		data.setBounds(30, 130, 100, 15);
		contentPanel.add(data);

		cal = new JCalendar();
		cal.setBounds(30, 160, 240, 200);
		contentPanel.add(cal);

		batu = new JButton("BATU");
		batu.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				// kutxak sartu eta balio hartu.

				String urtea = Batu.this.lortuurtea();
				if (badago(urtea, lekuaid) == true) {
					JOptionPane.showMessageDialog(Batu.this,
							"Urte horretan batu duzu partzela horretan!", "KONTUZ",
							JOptionPane.WARNING_MESSAGE);
					
					Batu.this.dispose();
				}

				else {
					int konfirmatu = JOptionPane.showConfirmDialog(Batu.this,
							"Batu nahi duzu?");

					if (JOptionPane.OK_OPTION == konfirmatu) {

						bektoreKutxa = Batu.this.kutxakHartu(bektoreizenak,
								bektoretext);

						String eguna = Batu.this.lortueguna();
						Batu.this.kutxakSartu(bektoreKutxa, eguna, lekuaid);
						Batu.this.dispose();

					} else if (JOptionPane.NO_OPTION == konfirmatu) {

						Batu.this.dispose();
					}
				}

			}

			private boolean badago(String urtea, int lekuaid) {

				boolean emaitza = false;
				int zenbat = BarietateaKud.badago(urtea, lekuaid);
				if (zenbat != 0) {
					emaitza = true;
				}
				return emaitza;
			}
		});
		batu.setBounds(550, 350, 117, 25);
		contentPanel.add(batu);
		lekuaid = LekuaKud.herriaidlortu(herria, izena);
		bektorebarId = BarietateaKud.lortubarietatea(lekuaid);
		int i = 1, y = 70;

		while (bektorebarId.size() >= i) {

			String barietateIzena = BarietateaKud.lortuizena(bektorebarId
					.elementAt(i - 1));

			JLabel barietatelabel = new JLabel(barietateIzena);
			barietatelabel.setBounds(350, y, 150, 15);
			contentPanel.add(barietatelabel);
			bektoreizenak.add(i - 1, barietateIzena);

			JTextField barietatetxt = new JTextField();
			barietatetxt.setText("0");
			barietatetxt.setBounds(550, y, 45, 19);
			contentPanel.add(barietatetxt);
			bektoretext.add(i - 1, barietatetxt);

			y = y + 70;
			i = i + 1;
		}

	}

	protected String lortuurtea() {

		String año = Integer.toString(cal.getCalendar().get(
				java.util.Calendar.YEAR));
		return año;
	}

	public void kutxakSartu(Vector<Kutxa> bektoreKutxa, String date, int lerroa) {

		BarietateaKud.kutxakSartu(bektoreKutxa, date, lerroa);
	}

	protected String lortueguna() {

		String año = Integer.toString(cal.getCalendar().get(
				java.util.Calendar.YEAR));
		String mes = Integer.toString(cal.getCalendar().get(
				java.util.Calendar.MONTH) + 1);
		String dia = Integer.toString(cal.getCalendar().get(
				java.util.Calendar.DATE));

		String eguna = (dia + "-" + mes + "-" + año);
		return eguna;
	}

	protected Vector<Kutxa> kutxakHartu(Vector<String> bektoreizenak,
			Vector<JTextField> bektoretext) {
		Vector<Kutxa> emaitza = new Vector<Kutxa>();
		int i = 1;
		while (bektoreizenak.size() >= i) {
			String barietatea = bektoreizenak.elementAt(i - 1);
			JTextField text = bektoretext.elementAt(i - 1);
			String e = text.getText();
			Integer k = Integer.parseInt(e);
			kutxa = new Kutxa(null, 0);
			kutxa.setIzena(barietatea);
			kutxa.setKutxak(k);
			emaitza.add(i - 1, kutxa);
			i = i + 1;
		}
		return emaitza;
	}
}
